------------------------------------------------------------------------------
  SAP AG - R/3 Remote Function Call Interface Generation
    RFC_MSVB_SR_EXP EN 46D 29.06.2003 15:28
    Complete Vis.Basic server exa.
    saprfcvr.txt
------------------------------------------------------------------------------

RFC_MSVB_SR_EXP : Complete Vis.Basic server exa.

  Description
  -----------

    The generation form RFC_MSVB_SR_EXP generates a complete
    ready-to-run external RFC server example program written in
    Visual Basic. This program lets you test external functions without
    manual programming.

    You can start your external RFC server from the R/3 function
    library testbed by specifying an appropriate RFC destination.

    The example program displays importing parameters and
    prompts the user to raise an exception or to input exporting
    parameters. Dialogs for displaying and setting values in internal
    table objects are also provided.

    The example program works with Microsoft Visual Basic (MSVB).
    The user interface provides a Visual Basic screen for output.
    Help texts are available for each dialog step.

    The example program contains type and variable definitions for all
    function module parameters. It also includes functions for init,
    input and display of importing and exporting parameters, and for the
    handling of internal tables.

  Files generated by this form
  ----------------------------

    - saprfcvr.mak
      Visual Basic project file.

    - saprfcvr.frm
      Output screen.

    - saprfcvr.bas

        - Type definitions for field and structure parameters
        - Help function
        - SET/GET macros and functions
        - RFC error function
        - External function
        - Init, input, display of import and export parameters
        - Handling of internal tables
        - Server stub
        - Variable definitions for external function parameters
        - Main program.

    - saprfcvr.txt
      This text.

  Generation
  ----------

    You can generate RFC_MSVB_SR_EXP for one function module at a time.
    The generation of example programs for multiple function modules
    at a time is not recommended, because names for generated
    subroutines will not be unique. When generating example programs,
    download and clear the code for one function module before going
    on to the next.

  Making an EXE file
  ------------------

    You can load the generated Visual Basic example program by opening
    the makefile saprfcvr.mak from inside Visual Basic.
    Then you can run the example within Visual Basic or you make an EXE file
    by choosing the 'Make EXE file' menu item from the 'File' menu.

  Dependencies
  ------------

    - Files you need from the RFC SDK for WINDOWS

        - librfc16.dll, librfc2.dll, nidll.dll, dptrcerr.dll
          Dynamic Link Libraries that provide the RFC API functions
          (WINDOWS 16-bit)

      Note:
      -----
      These files should be in the same directory as your generated
      example program. The dynamic link libraries may also be stored
      in another directory, but this directory must be defined
      in the WINDOWS path variable.

  Test support
  ------------

    The example program provides support to automate tests. Use program
    argument -o <file name> to record a test, edit the recorded file
    if necessary and play it back by using program argument -i <file name>.
    You can use -o and -i at a time. Verify your test results by comparing
    the input and output file. Use program argument -? to get help on all
    supported program arguments.

    Note
    ----

      When defining a RFC destination for an external RFC server
      (SM59) in the current R/3 release you cannot specify additional
      program arguments like -o or -i for the RFC server program.
      You have to use a shell script or procedure to add additional
      program arguments.

  Tested development systems
  --------------------------

    - Microsoft Visual Basic 3.0

  Warnings
  --------

    - The length of generated source code lines is limited
      to 255 characters. A large number of parameters can cause
      errors, because MSVB 3.0 has no line-continue character.

      Statements longer than 255 characters are splitted into
      two or more lines. You can concatenate splitted statements
      again by removing the return character.

      Note:
      -----

        Repair function declarations carefully. When removing
        the return character of a function declarations the function
        header is recognized, but the function body remains
        in the declaration window.

        To solve this problem, cut the function body from the
        declaration window, repair the function declaration, then paste
        the function body into the function declaration window.

    - To convert the input string to an integer parameter,
      var = CInt(s) is used. The CInt function always rounds
      to the nearest even number. For example, 0.5 rounds to 0,
      and 1.5 rounds to 2 (see MSVB online help also).

    - Having a field named 'Line' in a structure or table causes
      a Visual Basic syntax error. To solve this problem rename this
      field in all Visual Basic modules to 'XLine' for example.

    - Don't use string variables with a certain length in MSVB 3.0:
      e.g. Dim myString * 10. Using string variables with a certain
      length can cause address errors when calling a DLL function.

    - Compatibility issues for Visual Basic for Application

        - MS Word 6.0 lacks support for structures known as VB types.
          You must use strings for structures and table rows.

  Changes
  -------

    11/1/94   Support for the following datatypes:

                - RFC_BCD : packed numbers
                - RFC_BYTE: hexadecimal fields

    5/2/95    Adding parameters immediately after parameter definition.
              Definition of export parameters after RfcGetDataExt and
              before RfcSendDataExt.

    5/2/95    Support for new naming convention of WINDOWS RFC libraries:
              librfc16.dll used instead of librfc.dll.

  Code has been generated for the following external function
  -----------------------------------------------------------

    - RFC_PING
      RFC-Ping

